<?php

namespace app\shop\controller\store;

use app\common\model\settings\Region as RegionModel;
use app\Request;
use app\shop\controller\Controller;
use app\shop\model\store\Store as StoreModel;
use app\shop\model\store\StoreLook as StoreLookModel;

/**
 * 门店控制器
 */
class Store extends Controller
{
    /**
     * 门店列表
     */
    public function index()
    {
        $params = $this->postData();
        //读取副表数据 kevin 2024/5/21
        //$model = new StoreModel;

        $model = new StoreLookModel;

        $list = $model->getList($params);

        foreach ($list as $key => $val) {
            $list[$key]['detail_address'] = $val['region']['province'] . $val['region']['city'] . $val['region']['region'] . $val['address'];
        }

        return $this->renderSuccess('', compact('list'));
    }


    /**
     *门店列表
     * storelist
     * \think\response\Json
     * @return \think\response\Json
     * @Author kevin
     * @date 2024/5/23 17:55
     */
    public function storelist()
    {
        $params = $this->postData();
        //读取副表数据 kevin 2024/5/21
        $model = new StoreModel;

        $model = new StoreLookModel;

        $list = $model->getList($params);

        foreach ($list as $key => $val) {
            $list[$key]['detail_address'] = $val['region']['province'] . $val['region']['city'] . $val['region']['region'] . $val['address'];
        }

        return $this->renderSuccess('', compact('list'));
    }

    /**
     * 添加门店
     */
    public function add()
    {
        $model = new StoreModel;
        //Vue要添加的数据
        $data = $this->postData();
        if ($data['logo_image_id'] == 0) {
            return $this->renderError('请上传logo');
        }
        $coordinate = explode(',', $data['coordinate']);
        if (count($coordinate) <= 1) {
            return $this->renderError('请在地图点击选择坐标');
        }
        // 新增记录
        if ($model->add($data)) {
            return $this->renderSuccess('添加成功');
        }
        return $this->renderError($model->getError() ?: '添加失败');
    }


    /**
     * 修改门店信息
     */
    public function edit($store_id)
    {
        // 门店详情 读取/编辑都是操作副表数据  kevin 2024/5/21
        $model = StoreLookModel::detail($store_id);
        if ($this->request->isGet()) {
            $model['coordinate'] = $model['latitude'] . ',' . $model['longitude'];
            $regionData = RegionModel::getCacheTree();
            return $this->renderSuccess('', compact('model', 'regionData'));
        }
        // 修改记录
        if ($model->edit($this->postData())) {
            return $this->renderSuccess('更新成功');
        }
        return $this->renderError($model->getError() ?: '更新失败');
    }

    /**
     *获取该门店所属城市所有的配送范围
     * getScopeCoordinatesList
     * @param $city
     * @param $store_id
     * \think\response\Json
     * @return \think\response\Json
     * @throws \think\db\exception\DbException
     * @throws \think\db\exception\ModelNotFoundException
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\DbException
     * @throws \think\db\exception\ModelNotFoundException
     * @Author kevin
     * @date 2024/5/28 18:11
     */
    public function getScopeCoordinatesList($city_id=0,$store_id=0)
    {
        $scope_coordinates_list = StoreLookModel::getScopeCoordinatesList(0,$city_id,$store_id);

        return $this->renderSuccess('', compact('scope_coordinates_list'));
    }

    /**
     *修改门店信息
     * storeedit
     * @param $store_id
     * \think\response\Json
     * @return \think\response\Json
     * @Author kevin
     * @date 2024/5/23 17:55
     */
    public function storeedit($store_id)
    {
        // 门店详情 读取/编辑都是操作副表数据  kevin 2024/5/21
        $model = StoreLookModel::detail($store_id);
        if ($this->request->isGet()) {
            $model['coordinate'] = $model['latitude'] . ',' . $model['longitude'];
            $regionData = RegionModel::getCacheTree();
            return $this->renderSuccess('', compact('model', 'regionData'));
        }
        // 修改记录
        if ($model->edit($this->postData())) {
            return $this->renderSuccess('更新成功');
        }
        return $this->renderError($model->getError() ?: '更新失败');
    }

    /**
     * 软删除
     */
    public function delete($store_id)
    {
        $model = new StoreLookModel;
        // 门店详情
        if (!$model->setDelete(['store_id' => $store_id])) {
            return $this->renderError('删除失败');
        }
        return $this->renderSuccess($model->getError() ?: '删除成功');

    }

    public function checkStoreClick(Request $request)
    {
        $params = $request->param();
        $model = StoreModel::where('store_id', '=', $params['store_id'])->find();
        if ($params['check_store'] == 2) {
            $model['refuse_content'] = $params['refuse_content'];
        } else {
            $model['refuse_content'] = '';
        }
        $model['check_store'] = $params['check_store'];
        $model->save();
        return $this->renderSuccess('操作成功');
    }




}
